﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

//数组中出现次数超过一半的数字
//https://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a92163?f=discussion
//class Solution {
//public:
//    int MoreThanHalfNum_Solution(vector<int>& numbers) {
//        unordered_map<int, int> m;
//        for (const auto& n : numbers) ++m[n];
//
//        int n = numbers.size() / 2;
//        for (const auto& x : m)
//            if (x.second > n) return x.first;
//
//        return -1;
//    }
//};

//简单错误记录
//https://www.nowcoder.com/questionTerminal/2baa6aba39214d6ea91a2e03dff3fbeb
//int main() {
//    while (true) {
//        string str;
//        unordered_map<string, int> m; //存储在vp中string和下标的映射关系
//        vector<pair<string, int>> vp; //存储string和出现次数
//        while (getline(cin, str))
//        {
//            int n = str.size();
//            auto pos = str.rfind('\\');
//            int sz = n - pos - 5; //求最后字符串长度
//            string tmp;
//            if (sz <= 16) tmp = str.substr(pos + 1);
//            else tmp = str.substr(str.size() - 20);
//
//            if (m.count(tmp)) ++vp[m[tmp]].second;
//            else
//            {
//                vp.push_back(make_pair(tmp, 1));
//                m[tmp] = vp.size() - 1;
//            }
//        }
//        int vpn = vp.size();
//        if (vpn == 0) break;
//        int i = 0;
//        if (vpn > 8) i = vpn - 8;
//        while (i < vpn)
//            cout << vp[i].first << ' ' << vp[i++].second << endl;
//    }
//    return 0;
//}